<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 一、浏览器的兼容性问题的原因：每个浏览器的内核不同，对同一段代码的解析不同，因此造成页面所展示的效果有所偏差
        // 二、浏览器的主要内核：
        //  1.Blink:谷歌浏览器内核
        //  2.webkit:Safari浏览器的内核
        //  3.Gecko:火狐浏览器内核
        //  4.Trident:早起IE浏览器的内容

        // 三、浏览器的工作原理
        // 1.输入网址：https://www.baidu.com
        // 2.DNS(域名系统)解析域名为ip地址：192.168.78 =>服务器地址
        // 3.服务器接收到请求，会返回静态资源 index.html
        // 4.浏览器执行index.html中的代码，遇到link标签，下载css文件，遇到script标签，下载js文件
        // 5.渲染页面

        // 四、JavaScript引擎——解析执行js代码
        // 1.高级语言的代码都是需要转成机器语言来执行的
        // 2.JS代码无论是浏览器执行，还是node执行，最后都是CPU执行
        // 3.JS引擎将JS代码转成机器执行，最终由CPU执行

        // 五、常见的JS引擎
        // 1.SpiderMonkey:第一款JS引擎，是由js的作者开发的
        // 2.chakra:微软开发，用于IE浏览器
        // 3.JavaScriptCore:webkit的JS引擎，Apple公司开发
        // 4.V8：Google开发，解析执行代码最快的js引擎，帮助谷歌浏览器脱颖而出

        // 六、浏览器内核和js引擎的关系
        // 浏览器内核里面包含js引擎，浏览器内核主要由两部分组成：
        // 1.web Core:负责HTML解析、布局、渲染等相关的工作
        // 2.JavaScript Core:解析执行JavaScrip代码

        // 七、V8引擎的工作原理
        // V8引擎使用C++编写的Google开源高性能JavaScript引擎，
        // V8引擎可以用于浏览器和Node,也可以独立运行，还可以嵌入到任何C++应用程序中

        // V8引擎解析js代码过程：
        // 1.代码解析：词法分析和语法分析
        // 2.预解析：对于没有调用的函数，浏览器只需要知道有这个函数就可以了，不需要对函数内部的内容进行解析
        // 3.转成AST抽象语法树
        // 4.转成字节码（字节码：所有系统通用）
        // 5.执行



    </script>
</body>
</html>